1
效能與生產力的權衡
AI023Lesson 1
00:00

在深度學習硬體加速領域,開發者經常面臨 忍者差距:高階 Python 程式碼(PyTorch/TensorFlow)與低階手動優化之 CUDA 核心之間的巨大效能差異。 Triton 是一種開源語言與編譯器,專門用來彌補這項差距。

1. 生產力與效率的光譜

傳統上,你有兩種選擇: 高生產力 (PyTorch),雖然撰寫容易,但對自訂運算常缺乏效率,或 高效率 (CUDA),需要專家級的 GPU 架構、共用記憶體管理與執行緒同步知識。

取捨之處: Triton 允許使用類似 Python 的語法,同時產生高度優化的 LLVM-IR 程式碼,其效能可媲美手寫的 CUDA。
生產力(易用性)效率(效能)CUDAPyTorchTriton

2. 分塊程式設計模型

與 CUDA 不同,後者採用 以執行緒為中心 模型(需針對單一執行緒撰寫程式),而 Triton 則採用 以分塊為中心 模型。你撰寫的操作是針對資料區塊(分塊)的。編譯器會自動處理:

  • 記憶體合併: 最佳化全域記憶體存取。
  • 共用記憶體: 管理快速的晶片內 SRAM 快取。
  • SM 排程: 將工作分配至流式多處理器。

3. 為何 Triton 至關重要

Triton 讓研究人員能以 Python 寫出自訂核心(如 FlashAttention),卻不犧牲大規模模型訓練所需的效能。它抽象掉了手動同步與記憶體階段化等複雜問題。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>